home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / mac / files / t_sys5 / unixcpio.gz / unixnet.cpio / ftp.h < prev    next >
C/C++ Source or Header  |  1994-07-11  |  1KB  |  46 lines

  1. #define CTLZ    26        /* EOF for CP/M systems */
  2.  
  3. extern char *userfile;    /* List of user names and permissions */
  4.  
  5. #define MAXPATH 8               /* Maximum number of path/permission pairs */
  6.  
  7. /* Per-session control block */
  8. struct ftp {
  9.     struct ftp *prev;    /* Linked list pointers */
  10.     struct ftp *next;
  11.     struct tcb *control;    /* TCP control connection */
  12.     char state;
  13. #define    COMMAND_STATE    0    /* Awaiting user command */
  14. #define    SENDING_STATE    1    /* Sending data to user */
  15. #define    RECEIVING_STATE    2    /* Storing data from user */
  16. #define STARTUP_STATE    3    /* Starting up autologin */
  17. #define USER_STATE    4    /* Waiting for the user name */
  18. #define PASS_STATE    5    /* Waiting for the password */
  19.  
  20.     char type;        /* Transfer type */
  21. #define    IMAGE_TYPE    0
  22. #define    ASCII_TYPE    1
  23.  
  24.     FILE *fp;        /* File descriptor being transferred */
  25.     struct socket port;    /* Remote port for data connection */
  26.     struct tcb *data;    /* Data connection */
  27.  
  28.     /* The following are used only by the server */
  29.     char *username;        /* Arg to USER command */
  30.     char *path[MAXPATH];    /* Allowable path prefix */
  31.     char perms[MAXPATH];    /* Permission flag bits */
  32. #define    FTP_READ    1    /* Read files */
  33. #define    FTP_CREATE    2    /* Create new files */
  34. #define    FTP_WRITE    4    /* Overwrite or delete existing files */
  35.  
  36.     char *buf;        /* Input command buffer */
  37.     char cnt;        /* Length of input buffer */
  38.     char *cd;        /* Current directory name */
  39.  
  40.     /* And this is used only by the client */
  41.     struct session *session;
  42. };
  43.  
  44. #define    NULLFTP    (struct ftp *)0
  45.  
  46.